home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 26.zip
/
BS1 part 26
/
Macro assembler dev syst.adf
/
include
/
devices
/
trackdisk.i
< prev
Wrap
Text File
|
1985-12-20
|
4KB
|
137 lines
********************************************************************
* Commodore-Amiga, Inc. *
* trackdisk.i *
********************************************************************
********************************************************************
*
* trackdisk.i
*
* Source Control
* ------ -------
*
* $Header: trackdisk.i,v 27.2 85/07/12 23:16:27 neil Exp $
*
* $Locker: $
*
*********************************************************************
IFND DEVICES_TRACKDISK_I
DEVICES_TRACKDISK_I SET 1
IFND EXEC_IO_I
INCLUDE "exec/io.i"
ENDC !EXEC_IO_I
*--------------------------------------------------------------------
*
* Physical drive constants
*
*--------------------------------------------------------------------
NUMCYLS EQU 80 ; normal # of cylinders
MAXCYLS EQU NUMCYLS+20 ; max # of cyls to look for
* ; during a calibrate
NUMSECS EQU 11
NUMHEADS EQU 2
MAXRETRY EQU 10
NUMTRACKS EQU NUMCYLS*NUMHEADS
NUMUNITS EQU 4
*--------------------------------------------------------------------
*
* Useful constants
*
*--------------------------------------------------------------------
*-- sizes before mfm encoding
TD_SECTOR EQU 512
TD_SECSHIFT EQU 9 ; log TD_SECTOR
* ; 2
*--------------------------------------------------------------------
*
* Driver Specific Commands
*
*--------------------------------------------------------------------
*-- TD_NAME is a generic macro to get the name of the driver. This
*-- way if the name is ever changed you will pick up the change
*-- automatically.
*--
*-- Normal usage would be:
*--
*-- internalName: TD_NAME
*--
TD_NAME: MACRO
DC.B 'trackdisk.device',0
DS.W 0
ENDM
BITDEF TD,EXTCOM,15
DEVINIT
DEVCMD TD_MOTOR ; control the disk's motor
DEVCMD TD_SEEK ; explicit seek (for testing)
DEVCMD TD_FORMAT ; format disk
DEVCMD TD_REMOVE ; notify when disk changes
DEVCMD TD_CHANGENUM ; number of disk changes
DEVCMD TD_CHANGESTATE ; is there a disk in the drive?
DEVCMD TD_PROTSTATUS ; is the disk write protected?
TD_LASTCOMM EQU TD_PROTSTATUS
*
*
* The disk driver has an "extended command" facility. These commands
* take a superset of the normal IO Request block.
*
ETD_WRITE EQU (CMD_WRITE!TDF_EXTCOM)
ETD_READ EQU (CMD_READ!TDF_EXTCOM)
ETD_MOTOR EQU (TD_MOTOR!TDF_EXTCOM)
ETD_SEEK EQU (TD_SEEK!TDF_EXTCOM)
ETD_FORMAT EQU (TD_FORMAT!TDF_EXTCOM)
ETD_UPDATE EQU (CMD_UPDATE!TDF_EXTCOM)
ETD_CLEAR EQU (CMD_CLEAR!TDF_EXTCOM)
*
* extended IO has a larger than normal io request block.
*
STRUCTURE IOEXTTD,IOSTD_SIZE
ULONG IOTD_COUNT ; removal/insertion count
ULONG IOTD_SECLABEL ; sector label data region
LABEL IOTD_SIZE
* labels are TD_LABELSIZE bytes per sector
TD_LABELSIZE EQU 16
*--------------------------------------------------------------------
*
* Driver error defines
*
*--------------------------------------------------------------------
TDERR_NotSpecified EQU 20
TDERR_NoSecHdr EQU 21
TDERR_BadSecPreamble EQU 22
TDERR_BadSecID EQU 23
TDERR_BadHdrSum EQU 24
TDERR_BadSecSum EQU 25
TDERR_TooFewSecs EQU 26
TDERR_BadSecHdr EQU 27
TDERR_WriteProt EQU 28
TDERR_DiskChanged EQU 29
TDERR_SeekError EQU 30
TDERR_NoMem EQU 31
TDERR_BadUnitNum EQU 32
TDERR_BadDriveType EQU 33
TDERR_DriveInUse EQU 34
ENDC DEVICE_TRACKDISK_I